package neuroPoker.poker;

import java.util.ArrayList;
import java.util.Random;

import neuroPoker.netze.NetKarte;

public class Dealer {

	public static final char[] bilder = new char[] { 'A', 'K', 'Q', 'J', 'T',
			'9', '8', '7', '6', '5', '4', '3', '2' };

	public static final char[] farben = new char[] { 'c', 's', 'h', 'd' };

	public static final Random random = new Random();

	public ArrayList<NetKarte> kartenSet;

	public Tisch tisch;

	public Dealer(Tisch tisch) {
		this.tisch = tisch;
	}

	public void deal(ArrayList<Spieler> spieler) {
		tisch.karten.clear();
		kartenSet = getKartenSet();
		for (int i = 0; i < spieler.size(); i++) {
			spieler.get(i).karten[0] = kartenSet.get(random.nextInt(kartenSet
					.size()));
			kartenSet.remove(spieler.get(i).karten[0]);
			spieler.get(i).karten[1] = kartenSet.get(random.nextInt(kartenSet
					.size()));
			kartenSet.remove(spieler.get(i).karten[1]);
		}
	}

	public void dealTableCards(int cards) {
		for (int i = 0; i < cards; i++) {
			tisch.karten.add(kartenSet.get(random.nextInt(kartenSet.size())));
			kartenSet.remove(tisch.karten.get(tisch.karten.size() - 1));
		}
	}

	private static ArrayList<NetKarte> getKartenSet() {
		ArrayList<NetKarte> karten = new ArrayList<NetKarte>();
		for (int b = 0; b < bilder.length; b++) {
			for (int f = 0; f < farben.length; f++) {
				NetKarte k = new NetKarte(bilder[b], farben[f]);
				karten.add(k);
			}
		}
		return karten;
	}

}
